﻿#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>

//menu()
//{
//	printf("1.add  2.sub  3.mul   4.div   0.exit\n");
//}
//
//
//void Add(int x, int y)
//{
//	return x + y;
//}
//void Sub(int x, int y)
//{
//	return x - y;
//}
//void Mul(int x, int y)
//{
//	return x * y;
//}
//void Div(int x, int y)
//{
//	return x / y;
//}
//
//void clase(int(*p)(int, int))
//{
//	int x, y, ret = 0;
//	printf("请输入：");
//	scanf("%d%d", &x, &y);
//	ret = p(x, y);
//	printf("%d\n", ret);
//}
//
//int main()
//{
//	int input = 0;
//	do
//	{
//		menu();
//		printf("请选择：");
//		scanf("%d", &input);
//		switch (input)
//		{
//		case 1:
//			clase(Add);
//		case 2:
//			clase(Sub);
//		case 3:
//			clase(Mul);
//		case 4:
//			clase(Div);
//		case 0:
//			printf("退出\n");
//			break;
//		default:
//			printf("重新输入\n");
//			break;
//		}
//	} while (input);
//	return 0;
//}
//
//typedef unsigned int* haha;
//
//int main()
//{
//	int b = 30;
//	int* c = &b;
//	haha a = &b;
//	*a = 30;
//	printf("%d  %d  %d", b, *c, *a);
//
//	return 0;
//}

//int add(int x, int y)
//{
//	return x + y;
//}
//
//typedef int(*haha)(int,int);
//
//int main()
//{
//	haha fun=add;
//	printf("%d\n", fun(3, 3));
//	return 0;
//}

//void fun(int(*p)[5])
//{
//	for (int i = 0; i < 5; i++)
//	{
//		printf("%d ", (*p)[i]);
//	}
//}
//
//int main()
//{
//	int arr[5] = { 1,2,3,4,5 };
//	fun(arr);
//	return 0;
//}

//menu()
//{
//	printf("1.add  2.sub  3.mul   4.div   0.exit\n");
//}
//
//
//int Add(int x, int y)
//{
//	return x + y;
//}
//int Sub(int x, int y)
//{
//	return x - y;
//}
//int Mul(int x, int y)
//{
//	return x * y;
//}
//int Div(int x, int y)
//{
//	return x / y;
//}
//
//int main()
//{
//	int input = 0;
//	int x = 0;
//	int y = 0;
//	int ret = 0;
//	int (*p[5])(int, int) = { 0,Add,Sub,Mul,Div };
//	do
//	{
//		menu();
//		printf("请输入");
//		scanf("%d", &input);
//		if ((input <= 4) && (input >= 1))
//		{
//			printf("请输入：");
//			scanf("%d%d", &x, &y);
//			int ret = (*p[input])(x, y);
//			printf("%d\n", ret);
//		}
//		else if (input == 0)
//		{
//			printf("退出\n");
//		}
//		else
//		{
//			printf("重新选择\n");
//		}
//	} while (input);
//	return 0;
//}

//冒泡排序   10,9,8,7,6,5,4,3,2,1
//输出   1 2 3 4 5 6 7 8 9 10

//void maopao(int* arr, int sz)
//{
//	for (int i = 0; i < sz - 1; i++)
//	{
//		for (int j = 0; j < sz - 1 - i; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//			}
//		}
//	}
//}
//
//int main()
//{
//	int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	maopao(arr, sz);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}

//void qsort(void* base, size_t num, size_t size,
//	int (*compar)(const void*, const void*));

//int int_cmp(const void* p1, const void* p2)
//{
//	return (*(int*)p1 - *(int*)p2);
//}
//
//int main()
//{
//	int arr[10] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	int i = 0;
//	qsort(arr, sz, sizeof(arr[0]), int_cmp);
//	for ( i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}


//int int_cmp(const void* p1, const void* p2)
//{
//	return (*(int*)p1 - *(int*)p2);
//}
//
//void test1()
//{
//	int arr[10] = { 1, 3, 5, 7, 9, 2, 4, 6, 8, 0 };
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	qsort(arr, sz, sizeof(arr[0]), int_cmp);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}

//struct stu //学⽣
//{
//	char name[20];//名字
//	int age;//年龄
//};

#include <string.h>

//int cmp_stu_by_name(const void* e1, const void* e2)
//{
//	return strcmp(((struct stu*)e1)->name, ((struct stu*)e2)->name);
//}
//
//void test2()
//{
//	struct stu s[] = { {"zhangsan", 20}, {"lisi", 30}, {"wangwu", 15} };
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), cmp_stu_by_name);
//}
//
//int cmp_stu_by_age(const void* p1, const void* p2)
//{
//	return (((struct stu*)p1)->age - ((struct stu*)p2)->age);
//}
//
//void test3()
//{
//	struct stu s[] = { {"zhangsan", 20}, {"lisi", 30}, {"wangwu", 15} };
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), cmp_stu_by_age);
//}
//
//int main()
//{
////	test1();
////	test2();
//	test3();
//	return 0;
//}

//int cmp(const void* p1, const void* p2)
//{
//	return *(int*)p1 - *(int*)p2;
//}
//
//void test1()
//{
//	int arr[10] = { 10,9,8,7,6,5,4,3,2,1 };
//	int sz = sizeof(arr) / sizeof(arr[9]);
//	qsort(arr, sz, sizeof(arr[0]), cmp);
//	for (int i = 0; i < sz; i++)
//	{
//		printf("%d ", arr[i]);
//	}
//}
#include <stdlib.h>
#include <string.h>
struct stu
{
	char name[10];
	int age;
};

//int cmp_name(const void* e1, const void* e2)
//{
//	return strcmp(((struct stu*)e1)->name , ((struct stu*)e2)->name);
//}
//
//void test2()
//{
//	struct stu s[] = { {"zhangsan", 20}, {"lisi", 30}, {"wangwu", 15} };
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), cmp_name);
//}
//
//int cmp_age(const void* e1, const void* e2)
//{
//	return ((struct stu*)e1)->age - ((struct stu*)e2)->age;
//}
//
//
//void test3()
//{
//	struct stu s[] = {{"zhangsan",20},{"lisi",30},{"wangwu",15}};
//	int sz = sizeof(s) / sizeof(s[0]);
//	qsort(s, sz, sizeof(s[0]), cmp_age);
//}
//
//int main()
//{
//// test1();
////	test2();
////	test3();
//	return 0;
//}

int main()
{

	return 0;
}